package baidumodel.entity.chat;

import lombok.*;
import lombok.experimental.SuperBuilder;

import java.io.Serializable;

/**
 * api :<a href="https://cloud.baidu.com/doc/WENXINWORKSHOP/s/jlil56u11">https://cloud.baidu.com/doc/WENXINWORKSHOP/s/jlil56u11</a>
 * @Author wuchenxi
 * @Date 2023-07-23 17:58:34
 */
@EqualsAndHashCode(callSuper = true)
@Data
@SuperBuilder
public class ErnieBotBaseParam extends BaseParam implements Serializable {
    /**
     * 说明：
     * （1）较高的数值会使输出更加随机，而较低的数值会使其更加集中和确定
     * （2）默认0.95，范围 (0, 1.0]，不能为0
     * （3）建议该参数和top_p只设置1个
     * （4）建议top_p和temperature不要同时更改
     */
    protected float temperature = 0.95F;

    /**
     * 说明：
     * （1）影响输出文本的多样性，取值越大，生成文本的多样性越强
     * （2）默认0.8，取值范围 [0, 1.0]
     * （3）建议该参数和temperature只设置1个
     * （4）建议top_p和temperature不要同时更改
     */
    protected float top_p = 0.8F;

    /**
     * 通过对已生成的token增加惩罚，减少重复生成的现象。说明：
     * （1）值越大表示惩罚越大
     * （2）默认1.0，取值范围：[1.0, 2.0]
     */
    protected float penalty_score = 1.0F;

    /**
     * 模型人设，主要用于人设设定，例如，你是xxx公司制作的AI助手
     */
    protected String system;

    public ErnieBotBaseParam() {
    }
}
